//! @file   lc_system.h
//! @brief  
//! @author Sayan Chaliha
//! @date   September, 2011
//!
//! 
#ifndef _LC_SYSTEM_H
#define _LC_SYSTEM_H

#include "libcyan_internal.h"
#include "lc_forward_decl.h"
#include "lc_types.h"
#include "lc_object.h"

namespace cyan {
    class CYAN_API System {
    public:
        static void CYAN_NORETURN throwSystemException(Int = errno);
        static Size standardBufferSize();
        static Size maximumFileNameLength();
        static Size maximumPathLength();
        static void sleep(UInt);
        static String errorMessage(Int);
        static Size pageSize();
        static Size physicalMemory();
        static String machine();
        static String model();
        static Time bootTime();
        static UInt ticksPerSecond();
        static String environmentVariable(const String&);
        static void environmentVariable(const String&, const String&);
    };
}

#endif /* _LC_SYSTEM_H */
